import request from './axios'

/**
 * 用户登录接口
 * @param {Object} data - 登录信息
 * @param {string} data.phone - 手机号
 * @param {string} data.password - 密码
 * @returns {Promise}
 */
export const login = (data) => {
  return request({
    url: '/api/auth/login/',
    method: 'POST',
    data: {
      phone: data.phone,
      password: data.password
    }
  })
}

/**
 * 用户注册接口
 * @param {Object} data - 注册信息
 * @param {string} data.username - 用户名
 * @param {string} data.phone - 手机号
 * @param {string} data.smsCode - 短信验证码
 * @param {string} data.password - 密码
 * @param {string} data.confirmPassword - 确认密码
 * @returns {Promise}
 */
export const register = (data) => {
  return request({
    url: '/api/auth/register/',
    method: 'POST',
    data
  })
}

/**
 * 获取用户信息接口
 * @returns {Promise}
 */
export const getUserInfo = () => {
  return request({
    url: '/api/auth/user/',
    method: 'GET'
  })
}

/**
 * 根据用户ID获取用户信息接口
 * @param {number} userId - 用户ID
 * @returns {Promise}
 */
export const getUserInfoById = (userId) => {
  return request({
    url: `/api/auth/user/${userId}/`,
    method: 'GET'
  })
}

/**
 * 更新用户信息接口
 * @param {Object} data - 用户信息
 * @returns {Promise}
 */
export const updateUserInfo = (data) => {
  // 检查是否是FormData（文件上传）
  const isFormData = data instanceof FormData
  
  return request({
    url: '/api/auth/user/',
    method: 'PUT',
    data,
    headers: isFormData ? {
      'Content-Type': 'multipart/form-data'
    } : undefined
  })
}